ngbe-1.2.8(release time 2026/07/07)
[Bug]
- fix bug that there's call trace shows that double free WARN and/or a BUG in free_msi_irqs().
  [Impact scenarios]:
  1. when pcie hot reset flow and "ifconfig down" or xdp_setup are running at the same time, there's call trace
  printed out waring that double free irq. 
  2. when injecting pcie error, driver and kernel may do pcie recover at the same time, which cause system crash.
  [severity: high]
 
- fix bug that when the port is with an external YT8531 PHY, after switching the link speed using the ethtool -s command, 
  the graphical user interface (GUI) still displays the speed prior to the switch, and no relevant speed-change log is printed in dmesg [jira:EMERALDSW-393]
  [severity: middle]

- fix bug that there's calltrace when unloading ngbe with ngbevf driver still loaded.[jira:EMERALDSW-392]
  [severity: high]
  
- fix bug that check_overtemp callback function for external Marvell phy is a NULL pointer.[jira:EMERALDSW-396]
  [Impact scenarios]:
   On the port with an external Marvell PHY, loading the driver triggers a kernel crash and cuses the system to reboot
  [severity: high]
  
- fix bug that after enabling sriov firstly and pf promisc mode secondly, and then set vlan port over pf port, 
  the pf port dropped the unmatched vlan id packets.[AMLITE-464]
  [Impact scenarios]:
  executing following commands in sequence:
  echo 1>/sys/class/net/enp25s0f0/device/sriov numvfs
  ip link set dev enp25s0f0 vf 0 trust on
  ifconfig enp25s0f0 promisc
  ip link add link enp25s0f0 name enp25s0f0.101 type vlan id 101
 
  the pf port would drop the vlan packcets with mismatched vlan id. For example, it would drop the packet with vlan 100. 
  [severity: middle] 

- fix bug that when unicast or multicast promiscuous mode is enabled both on pf and one vf,the vf will
  receive the packets whose VLAN id is not the same as the VLAN of the VF.
  [Impact scenarios]:
  For instance, in this situation:
  ┌────────┐    ┌────────┐    ┌────────┐
  │        │    │        │    │        │
  │        │    │        │    │        │
  │     VF0├────┤VF1  VF2├────┤VF3     │
  │        │    │        │    │        │
  └────────┘    └────────┘    └────────┘
   VM1           VM2           VM3

  vf 0:  vlan 1000
  vf 1:  vlan 1000
  vf 2:  vlan 1001
  vf 3:  vlan 1001

  If we tcpdump on VF3, we see all the packets, even those transmitted
  on vlan 1000.

  This behavior prevents to bridge VF1 and VF2 in VM2, because it will
  create a loop: packets transmitted on VF1 will be received by VF2 and
  vice-versa, and bridged again through the software bridge.

  This patch remove the activation of VLAN Promiscuous when a VF enables the promiscuous mode. 
  However, Unicast Promiscuous is kept, so that a VF receives all packets that has the
  same VLAN, whatever the destination MAC address.
  PF will receive all the packtets which do not match any vfs.

  [severity]: high

- fix bug that the tx packets with triple vlans would be dropped by hardware.[jira: AMLITE-484]
  [Impact scenarios]:
  when tx vlan offload is on, the tx packets with triple vlans would be dropped by hardware and cannot be sent out.
  [severity]: middle

- fix bug that access incorrect register to check link speed with an external JBC01G PHY.
  Change read speed from BMSR to Phy specific status reg, this reg speed is real-time.[jira: EMERALDSW-400]
  [Impact scenarios]:
  With an external JBC01G PHY, the link can be established (Link UP) but ping fails, and CRC errors are observed.
  [severity]:high

- fix bug that after repeatedly executing "echo bdf > /sys/bus/pci/driver/txgbevf/unbind" and 
  "echo bdf > /sys/bus/pci/driver/txgbevf/ bind", out-of-bounds calltrace will be triggered.
  [severity]:low
  
- fix bug that when a VLAN or macvlan sub-port is configured with a custom MAC
  address, the vlan port stops receiving packets after a down/up cycle. [EMERALDSW-405]
  [severity]:high

- fix bug that the flow control auto-negotiation feature cannot work.[jira:EMERALDSW-401]
  the fixed flow control autoneg logic is as below:
  *   LOCAL DEVICE  |   LINK PARTNER
  * PAUSE | ASM_DIR | PAUSE | ASM_DIR | NIC Resolution
  *-------|---------|-------|---------|--------------------
  *   DC  |   DC    |   0   |   0    | wx_fc_none
  *   DC  |   DC    |   1   |   1    | wx_fc_full
  *   DC  |   DC    |   1   |   0    | wx_fc_full
  *   DC  |   DC    |   0   |   1    | wx_fc_rx_pause

  DC means don't care, PAUSE means rx path, ASM_DIR means tx path,
  local device autoneg is enabled.
  [severity]:high

- fix bug that the temperature shown in the sysfs directory is a negative value.
  [severity]:middle   

- fix bug that on a OCP NIC, a pending bit is observed probabilistically during driver loading after reboot. [jira:SAP-403]
  When system reboots, .shutdown() sets BME=0 but skips LAN reset.
  After reboot, re-enabling BME=1 may leave PCIe pending bits uncleared,
  causing potential transaction issues when aux power is present.
  [severity]:high

- fix bug that PCIe hot reset flow may be triggered multiple times abnormally during NIC recovery. [jira:SAP-377]
  [Impact scenarios]:
  When the network card operates abnormally and initiates a PCIe hot reset, the reset procedure may be executed 
  repeatedly due to improper handling, causing redundant reset cycles.
  [severity]:low 

- fix bug of dump faulty lan port debug info. [jira:EMERALDSW-395]
  [Impact scenarios]:
  When a TX timeout occurs, the driver incorrectly dumps
  debug information from the recovery port instead of the
  port that actually experienced the timeout. This obscures
  the real fault context and hinders troubleshooting.
  [severity]:high

- fix bug that 'clearing Tx Timestamp hang' noise is recorded in the log by executing ptpd command with some parameter.
  HW timestamping can only be requested for a packet if the NIC is first
  setup via ioctl(SIOCSHWTSTAMP). If this step was skipped, then the ixgbe
  driver still allowed TX packets to request HW timestamping. In this
  situation, we see 'clearing Tx Timestamp hang' noise in the log.

  Fix this by checking that the NIC is configured for HW TX timestamping
  before accepting a HW TX timestamping request.
  [Impact scenarios]:
  execute "./ptpd -T 64 -c -d -y -2 -n VLK -b p5p1 -q 13101"
  [severity]:low

- fix bug that when fw lldp feature switch is on, after enabling SR-IOV and then disabling it, the PF will receive LLDP packet. [jira:SAP-221]
  When fw lldp feature is enabled, the PF will receive LLDP packets with SR-IOV enabled; 
  after SR-IOV is disabled, the PF should not receive LLDP packets.
  [severity]:high

- fix bug that spoof check does not work when sriov is enabled. [jira:EMERALDSW-412]
  [severity:high]
  
- fix bug that kernel panic occurs when shrinking MTU with SR-IOV enabled.[EMERALDSW-413]
  When SR-IOV is enabled and network traffic is ongoing, dynamically reducing the MTU value may trigger kernel panic.
  [severity:high]
  
- fix bug that when the link of PF goes down and then up again, inter-VF communication fails when VFs of this PF are in link-state enable mode.[jira:EMERALDSW-415]
  [severity:high]

- fix bug that when lan0 is disabled physically, driver load fails on all other lan ports.
  [severity:high]

[New feature]
- Add Asym_Pause function of phy for supported link mode. [jira:EMERALDSW-391]
  [Impact scenarios]:
  Lack of Asym_Pause in supported modes can cause several problems,
  i.e. it won't be possible to turn on the autonegotiation
  with asymmetric pause settings in Tx on/Rx off mode.
  [severity: middle]
  
- Add link-down-on-close feature in ethtool-priv-flags. [AMLITE-575]
  [severity:low]

- Add suppport for communication between OS and BMC. [EMERALDSW-398]
- Add support for external phy LY1211s
- Add support for external phy JL3113

- Add support for master/slave switching for 1000/100Base-T1 via BaseT1Mode [jira:EMERALDSW-407]
  Introduce a new driver loading parameter `BaseT1Mode` to dynamically
  configure the operational role for 1000BASE-T1 and 100BASE-T1 Ethernet
  interfaces.

  Parameter mapping:
    0 - Master mode
    1 - Slave mode

  The parameter is evaluated during driver initialization and configures
  the PHY/link layer accordingly. This replaces fixed role assignment and
  provides the flexibility required for varying hardware topologies,
  system designs, and validation scenarios.

  Usage example:
    modprobe ngbe BaseT1Mode=0,0,0,0   # Load as Master
    modprobe ngbe BaseT1Mode=1,1,1,1   # Load as Slave

- Add support for storm control.
  Add storm control param in configuration file.
  
- Add support for SCTP RSS Hash.

[Optimization]
- Modify the rx_broadcast and rx_multicast counters displayed by ethtool to be uniformly read from the MAC-layer registers.  
- Add IP (L3) packet counting to the scum_good statistics counter in ethtool.  
- Merge RX xon/xoff flow control counters into rx_pause_frames counter in ethtool
- Expose NGBE_RDB_MPCNT as a new ethtool statistic "rdb_missed" so that RDB drops can be monitored directly.
  Stop adding RDB missed packets to net_stats->rx_missed_errors;
  instead report them only through the dedicated "rdb_missed" counter.
  

[Compatibility]
- add support for kylin 4.4.131
- add support for xdp_feature introduced in Kernel6.0 to maintain compatibility.


ngbe-1.2.7(release time: 2025/07/15)
[Bug]
- fix bug that PPS width macro value in configure file is not correctly parsed and computed in driver code.  
  [Impact scenarios]:
  The unit of PPS width in configure file is ms. the driver should convert it to ns units firstly.
  [severity]: high 

- fix bug that ethtool cannot show port mode correctly when yt8521s/yt8531s phy is in utp mode. [jira:EMERALDSW-358]
  [Impact scenarios]:
  When yt8521s/yt8531s external phy is used and the phy is in utp mode or combo mode with utp port linked up, 
  ethtool shows the port mode as fiber which is not correct.
  [severity]: low
  
- fix bug that ethtool shows rtl8211 phy link speed as 10M occasionally, which is not the real link speed.[jira:EMERALDSW-362]
  [Impact scenarios]:
  When rtl8211 external phy is used, ethtool shows link speed as 10M occasionally, while the real link speed is 1000M. This is
  caused by driver checking uncorrectable link speed register.   
  [severity]: high 
  
- fix bug that if number of ports on the machine is greater than 32 or unbinding/binding the port which causes number of created ports to 33
  there's out of range calltrace printed.  [jira: SAP-328]
  [Impact scenarios]:
  If there're more than 32 wx1860 ethernet ports on a single machine or repeatedly unbinding and binding ports up to 33 times, 
  newer kernel versions with the UBSAN component will report the call trace. 
  This is caused by an out-of-bound access in the RSS array defined in driver code.
  [severity]: low

- fix bug that if the tx vlan offload is turned off,  the double vlan packets cannot be sent successfully.
  [Impact scenarios]:
  Running iperf to send double vlan packets would fail when tx vlan offload is turned off.
  [severity]: high

- fix bug that when an 802.1ad packet with checksum error is received, rx_csum_offload_errors stat value is not increased.[jira:SAP-298]
  [severity]: middle
  
- fix bug that "ethtool dev" does not show "Wake-on" status correctly. [jira:EMERALDSW-364]
  [Impact scenarios]:
  "ethtool dev" always shows "Wake-on" as "g" which means the card supports wol even if the card does not support wol indeed. 
  [severity]: middle

- fix bug on kunpeng920. On kunpeng920, smmu would report event 0x10 occasionally if smmu is on.
  The packet data would be tampered with occasionally if smmu is off. [jira:SAP-343,SAP-344]
  [Impact scenarios]:
  On kunpeng920, smmu would report event 0x10 occasionally if smmu is on. 
  The packet data would be tampered with occasionally if smmu is off.
  These two issues are both caused by hw pcie read request completion out of order.
  [severity]: high

- fix bug that fw reset will cause driver to do re-initiation.[jira:EMERALDSW-366]
  [Impact scenarios]:
  Fw will do reset in some conditions. It will cause driver to do re-initiation and print "Reset Adapter" message.
  It will lead traffic be cut off for a while.
  [severity]: high

- fix bug that unloading xsk program may lead calltrace [jira: AMLITE-399]
  [Impact scenarios]:
  Unloading the xsk program while there's still traffic would cause kernel call trace.
  [severity]: middle

- fix bug that if lldp is set, following the steps:  ifconfig down->unplug the cable->ifconfig up->plug in the cable,
  the link status is no. [EMERALDSW-367]
  [severity]:low
 
- fix bug that driver may maintain uncorrect lldp on/off status if bmc or wxtool changes the lldp status.
  [Impact scenarios]: 
  The driver only get fw lldp status at intialization time. If bmc or wxtool changes the lldp status after that, 
  the driver possibly goes to uncorrect flow according to wrong lldp status. This may lead to link cannot be up. 
  [severity]: high
 
- fix bug that when yt8521/8531 external phy is used and CONFIG_DEBUG_SPINLOCK is set in kernel, there's calltrace printed.[jira:EMERALDSW-368]
  [Impact scenarios]:
  When kernel sets CONFIG_DEBUG_SPINLOCK, the kernel will dump calltrace in driver intialization time with yt phy card.
  [severity]: low

- fix bug that double vlan packet sent by vf cannot work when port vlan offload is enabled. [jira: SAP-339]
  [Impact scenarios]:
  execute following commands:
  1. ip link set ethx vf [vf_index] vlan [vlanid1]
  2. ip link add vlan.vlanid1 link ethx type vlan id [vlanid2]
  the vf cannot send double vlan packet correctly. 
  [severity: high]
  
- fix bug that "ethtool -s" can set invalid speed without error promoted.[jira:EMERALDSW-371] 
  [Impact scenarios]:
  when executing "ethtool -s dev speed 101(any invalid num) duplex full autoneg on",
  ethtool will not return error but show unknown speed and link status down.
  Add check to return error under this case.
  [severity: low]
  
- fix bug that executing xdp_redirect may cause calltrace [jira: EMERALDSW-376]
  [Impact scenarios]:
  When executing xdp_redirect, there's calltrace dump.
  [severity: middle] 

- fix bug that cannot get phy id when the external phy is yt8521/8531 and the fw is ncsi valid.  
  [Impact scenarios]:
  May occasionally cannot get yt phy id since fw is accessing phy at the same time.
  [severity: low]
  
- fix bug that link up message is reported after the high-temperature alarm [jira: EMERALDSW-375]
  [Impact scenarios]:
  when the high-temperature alarm is triggered, there's link up message printed. It should not be reported in such situation.
  [severity: low]
  
- fix bug that VF multicast address removal does not take effect[EMERALDSW-380]
  [Impact scenarios]:
  VF continues receving traffic with removed mulicast addresses.
  [severity: high]

  
[New feature]
- add new ethtool stats [jira:EMERALDSW-349]
  show rdb packets count, rdb drop count, parser count, tdm count, tdm drop count, tdb count, parser drop count,
  linksec untag packets, rx mac packets in ethtool stats, and print packets when rx_err msglvl is enabled.

- add support to desc check  [jira:EMERALDSW-350]
  enable desc check and desc error interrupt.
  enable dumping rings and skbs when tx hangs or pcie request error occurs.

- add support for phy 88e1111 or similar models to 88e1111.
  this feature needs mix phy type supported firmware.

- add 100M link speed support for yt8011a [jira:EMERALDSW-361]

- add support for enabling vf link state
  add support for command "ip link set dev vf n state enable" 

- add generated.sh file for cross compiling and compiling into kernel.

- add the capability to map non-linear xdp frames in XDP_TX and ndo_xdp_xmit callback. [jira: EMERALDSW-378]

- update pci.updates file according to the latest version of pci.ids. [jira:SAP-307]
  
[Optimization]
- always power up phy at hw intialization. Add phy resume function for external phys. [jira: EMERALDSW-369]

ngbe-1.2.6.5(release time: 2024/12/27)
- fix compile error on redhat-9.5 uos-1070
- fix compile error when kernel set CONFIG_MODULE_SIG_FORCE

ngbe-1.2.6.4(release time: 2024/9/19)
- optimize reset flow when driver is tx hang or timeout
- fix handling of NAPI budget when multiple queues are enabled per vector
- fix resolving ipv6 packet header errors
- fix tunnel packets unreachable when enable sriov

ngbe-1.2.6.3(release time: 2024/9/11)
- fix tx csum offload except tcp udp sctp l4 protocol

ngbe-1.2.6.2(release time: 2024/8/19)
- add HAVE_NETDEV_XMIT_MORE macro to avoid redefintion of netdev_xmit_more in kylin_v10 4.19.90.
- fix Kylin-Server-V10-SP3-2403 OS compiling errors.

ngbe-1.2.6.1(release time: 2024/06/13)
- fix bug: when netdev_uc_addr is more than 16, it do not open promisc mode correct.
- fix bug: Hardware only support max request size 128.

known unresolved issues:
1. UOS 1050a, log "RXDCTL.ENABLE on Rx queue 0 not cleared within the polling period" happens probabilistically. [EMERALDSW-265]

ngbe-1.2.6(release time: 2024/04/12)
- add support for inspur ncsi card
- add AER error type debug information
- add support for yutai phy unidirectional mode. add driver load params to enable/disable the unidirectional mode.
- add support for phy JL2201-N048C
- add support for phy rtl8211f
- add support for phy XZP211FS
- add support for phy yt8531h
- add support for showing fw version on vf by "ethtool -i vf_port_name"
- add support for dynamic itr configuration and adaptive rx usecs by command "ethtool -C" 
- add support for vf trust function.
- add support for setting vf vlan type of 802.1ad 
  by command "ip link set [pf_name] vf [vf_id] vlan [vlan_id] proto 802.1ad"
- add cpu architecture or pcie upstream type check to determine whether to do pcie recovery when there's pcie error.
- add support for setting the vf link state by command "ip link set [pf_name] vf [vf_id] state disable/auto"
- set gpio0 to input direction mode by default.
- remove the restriction that vf mtu can be greater than 1500 only when pf mtu is greater than 1500
- add mbx cmd to let driver get lldp on/off status from fw.
- change hw feature "rx-vlan-filter" in command "ethtool -k" to be configurable. Change "tx-vlan-stag-hw-insert" and
  "rx-vlan-stag-hw-parse" in "ethtool -k" to be fixed.
- add support for notifying firmware the link status change when the card has smbus function.
- add support for redhat8.3 and 8.9.
- add support for openEuler20.03SP4
- fix bug: when install vf driver by using "make modules_install" and then create vfs of all the ports successively, 
           there will be problem with getting mailbox lock.
- fix bug: failed to execute command "ip link add <vlan_name> link <vf_name> device type vlan id <vlan_id>"
           after command "ip link set <pf_name> vf <vf_num> vlan <vlan_id>" 
- fix bug: yt8531sh-ca phy can't be powered down in combo mode. This bug only exists in -ca chip version.
- fix bug: when phy is external phy, vf driver cannot get the link status.
- fix bug: when promisc mode is enabled, vlan packets cannot be received.
- fix bug: the rx multicat statistics of pf is not correct when vfs are enabled.
- fix bug: When enable SRIOV, the bug "unable to handle kernel NULL pointer" will occasionally happen.
- fix bug: when using "ethtool -X ethx hkey" to set RSS hash key, the command does not take effect. 
- fix bug: yt8531s-ca can't generate interrupt in combo mode.
- fix bug for xdp:
  The statistics of queues 4 to 7 are lost after xdp program is loaded.
  There's xdp_redirect drop error in some kernel version.
- features change in xdp:
  delete save ring states when xdp load and unload
  add xsk support
  allow to increase mtu to 3K with xdp enabled
  when executing "ethtool -L" to set the number of normal rings, the number of xdp rings are not changed.

known unresolved issues:
1. UOS 1050a, log "RXDCTL.ENABLE on Rx queue 0 not cleared within the polling period" happens probabilistically. [EMERALDSW-265]

ngbe-1.2.5.3(release time: 2023/11/17)
- add support for vpd update when using "ethtool -f" to upgrade flash image
- add support for kernel 6.4.0

known unresolved issues:
1. UOS 1050a, log "RXDCTL.ENABLE on Rx queue 0 not cleared within the polling period" happens probabilistically. [EMERALDSW-265]
2. VF can not obtain mailbox lock when PF does down/up. [EMERALDSW-266]
3. The statistics of queues 4 to 7 are lost after xdp program is loaded. [EMERALDSW-267]

ngbe-1.2.5.2(release time: 2023/11/13)
- fix bug that "ifconfig down" would not power down the external phy\

known unresolved issues:
1. UOS 1050a, log "RXDCTL.ENABLE on Rx queue 0 not cleared within the polling period" happens probabilistically. [EMERALDSW-265]
2. VF can not obtain mailbox lock when PF does down/up. [EMERALDSW-266]
3. The statistics of queues 4 to 7 are lost after xdp program is loaded. [EMERALDSW-267]

ngbe-1.2.5(release time: 2023/07/11)
- fix bug in ECC error recovery flow. Change the device reset waiting time from 3s to 1s
- fix bug when the flash cannot be accessed, getting lldp status from flash would take too long time at driver loading time. 
  It will cause cpu stucked.
- fix bug when pf link is down, vf cannot detect the link change.
- fix bug that makes ethtool show advertised speed abnormal in autoneg off case.
- fix bug: the number of descriptors in tx/rx queue must be multiple of 128.
- To avoid the speed of internal phy from 1000M down to 100M/10M when signal is not good, set "disable fall 100M" bit of gphy reg.
- To avoid the speed of internal phy from 1000M down to 100M/10M when signal is not good, driver will retry auto-negotiation for 3 times 
  if gphy does not link to 1000m. This action can be switch on/off by macro and is off by default.
- Make "Disable completion timeout" macro on by default.
- change yt8521/8531 BMCR from 0x8240 t0 0x8140 in 1G autoneg off case. 
- do not do pcie hot reset when pcie error found if sriov is enabled.
- Add ngbe genphy_suspend and genphy_resume ops. Change flow of gphy initialization, only setup phy power in ngbe_probe
->ngbe_phy_init. When ngbe_open/close, just to phy_suspend and phy_resume.
- optimize the driver code.
- add support for KylinV10 Desktop 
- add support for suse15sp5, suse15.5
- add support for redhat9.2, redhat 8.8
- add support for fedora38
- add support for uos server 1060a,1060e
- new feature: add XDP support:
  - Xdp programs can be loaded in native mode
  - Supports XDP_PASS, XDP_DROP, XDP_ABORTED, XDP_TX, XDP_REDIRECT xdp action
  - Supports load AF_XDP in copy-mode
  - Supports AF_XDP loaded on a specified queue

known unresolved issues:
1. UOS 1050a, log "RXDCTL.ENABLE on Rx queue 0 not cleared within the polling period" happens probabilistically. [EMERALDSW-265]
2. VF can not obtain mailbox lock when PF does down/up. [EMERALDSW-266]
3. The statistics of queues 4 to 7 are lost after xdp program is loaded. [EMERALDSW-267]

ngbe-1.2.4(release time: 2023/03/01)
- fix bug on concurrent accessing to yutai phy registers. Add spinlock for protection.
- fix bug that when double vlan hw offload is on, iperf cannot send/recevie packets successfully.
- fix bug that when enable sriov mode with 7 vfs, an error "free already-free IRQ" would be promoted by os.
- fix bug that the max number of RSS queue pairs exceeded the number of cpu cores.
- fix bug that executing "make modules_install" does not depmod in some kinds of linux os.
- fix bug on statistical count of "rx_missed_errors".
- fix bug that vf works abnormal in promisc mode.
- fix bug that if mac address is changed by host,default mac address cannot be restored after driver reload when hw veto bit is set.
- Do sw reset instead of pcie recovery flow when hw ecc error reported.
- regroup pcie aer status register print information. 
- regroup NGBE_FLAG2_PCIE_NEED_RECOVER macro. remove unused NGBE_PCIE_RECOVER macro
- add ncsi support on yutai phy.
- add auto-negotiation on/off switch for yutai phy in 001 mode.
- add PCIe registers print infomation for debugging when detecting pcie pending bit not clear issue.
- add lan reset in tx timeout / clean tx irq flow
- add "enable/disable lldp offload in fw" by using ethtool
- add support for KylinV10_x86_testv3, KylinV10 sp1 and sp2
- add support for ubuntu14.04
- add support for redhat8.7 and 9.1
- add support for sles12.3, 15.4 and 12

ngbe-1.2.3(release time: 2022/08/16)
- remove zte phy related code.
- fix bug of identifing the real phy mode when in marvell phy mix mode.
- fix bug that speed change would lead to link down in marvell phy copper mode.
- add support for marvell/yt8521 1000base-x mode autoneg on/off switch by ethtool
- turn off fiber auto sensing and set 1000BX manually to avoid link to 100M occationally in yt8521/8531 fiber mode
- add support for yt8521/8531 "sgmii mac-to-rgmii phy" mode
- add spinlock protection on yt8521/8531 phy ext field registers accessing
- add pcie aer configuration space print info before pcie recovery
- add marcro switches NGBE_RECOVER_CHECK and NGBE_DIS_COMP_TIMEOUT in configure file
- correct the link mode showing by "ethtool dev" when phy is in fiber mode 
- add support for x86 centos8.6 and centos 9.0
- add support for linux kernel 5.18.1
- add support for openEuler 22.03 and uos ulec20
- add support for openEuler 4.19.208  
- change the compile parameter
- fix bug that lan0 would ocassionally fail to initialize when insmod driver imediately after rmmod driver
- add support for updating initramfs in Makefile
- when using "ethtool -f" to upgrade flash image, the operation can only be made once before reboot the machine. 
- add chip version(A/B) check when using "ethtool -f" 
- disable gphy green ethernet
- disable gphy eee

known unresolved issues:
1. double vlan and QinQ can cause call trace and do pcie recovery
2. On loongson platform, mac_ctl packets can cause call trace
3. Sometimes, 'ethtool -s ethx autoneg on' is not valid on yt8521 phy

ngbe-1.2.2(release time: 2022/04/12)
- fix bug of pcie recovery flow. 
  Also add pcie recovery switch in configure file to turn on/off this function
- fix bug that phy speed auto-negotiation will occasionally set speed to 100M while 
  1000M is what we really want
- add speed auto-negotiation retry for internel phy 
  if the speed is linked to 100M while 1000M is what we really want.
  Also, add speed auto-negotiation retry switch to turn on/off this function
- add support for yt8531 phy
- add support for yt8521/8531 SGMAC_TO_RGPHY(3'b101) mode
- add support for customerize oem ssid and svid.
- add support for suse15sp3, suse12sp5, suse11.3 
- add support for ubuntu21.10
- add support for arm/x86 centos8.5
- add support for centos7.3-7.6

ngbe-1.2.1(release time: 2021/12/20)
- add support for ssid xx62 and xx64 for yt_phy_sfp which can control the tx laser of sfp module by gpio
- fix compile warnning
- fix bug of 'ethtool -p' for yt8521 phy with some old kernel

ngbe-1.2.0(release time: 2021/11/29)
- fix bug of sending udp packet out-of-order
- fix compiling error on kernel-realtime os 
- fix compiling error when DISABLE_PACKET_SPLIT macro is switched on.
- fix efuse configuration bug.4
- fix bug of showing correct suppported link speed when executing "ethtool ethName" 
- fix compiling error on centos4.18.0 rt7
- add support for "internal phy-to-yt8521" mode
- add support for "rgmii mac to FPGA" mode
- add support for yt8521 "rgmii mac to sgmii phy" mode
- add support for setting force speed to 1000M/100M/10M when yt8521 is in utp mode
  with ethtool command.
- add support for led and polarity configuration in firmware.
  supported phy type:
  -internal phy
  -marvell88E1512
  -yt8521
- add marvell88E1512 phy power on/off action when making lan port up/down.
- add support for selectable fiber/rj45 mode of marvell 88e1512 for each lan port on one chip
- add support for "ethtool -p" with marvell 88e1512 phy.
- fix bug of tunnel mode traffic such as vxlan

Note:
current version supports "ethtool -p" function. However, it has some restrictions.
1. For yt8521 phy, "ethtool -p" would make led2 blink. If you do not use led2, this 
command has no effect.


ngbe-1.1.1(release time: 2021/11/29)
- add phy force-speed mode to autoneg off cmd
- add ethtool -p for yt8521 phy
- add yt8521 link status polling mode
- diff yt8521 utp and fiber mode in "ethtool name" command 
- add itr setting configuration in configure file
- fix compling bugs in kernel 5.10 and centos 8.4
- fix sriov issue to make sure sriov cannot be disabled when vfs are assigned.

ngbe-1.1.0(release time: 2021/05/21)
- fix polling bond mode speed 100 not link up
- fix tx pending bit when fw is 10008/10009
- fix ethtool -a xxx autoneg on failed
- fix when hy guest os is windows bar4 will be clean 



ngbe-1.0.9(release time: 2021/04/20)
- ethtool -t xxx 
- add mbox check
- fix ngbevf autoload error 
- update to support kernel 5.8.9
- compile in centos 8.3
- fix phy signal set bug
- uprade img function



ngbe-1.0.8(release time: 2021/01/22)
- support pcie error recovery 
- add sub device id 0x0103
- add poll link status method to accelerate bond switch speed.
- add support for "ethtool -k rxhash off/on"
- fix compile error on uos ft platform.
- fix "ethtool -p xxx" function bug
- add switch control for yutai phy power.
- fix multicast packet bug 

issues exist in current version:
- iperf udp/tcp traffic has problem in double vlan mode. 



Driver version: 1.0.0(beta)

Supported OS: CentOS 7.2 to 7.4 and kylinft

=================================================================================

Contents
--------

- Important Notes
- Supported Features
- Hardware Supported Hardware
- Known Issues and Workarounds
- Building and Installation:
- Command Line Parameters

=================================================================================

Important Notes:
----------------

This is the first released version of Wangxun gigabit ethernet driver. It is fully new and still remain in
debugging status.

Supported Features:
-------------
- Support 10/100/1000M full and Autoneg.
- Support Legacy/MSI/MSI-X interrupt.
- Support ipv4/ipv6, Support promisc mode.
- Support RSS.
- Support Vlan.
- Support Tx/Rx checksum offload.
- Support TSO.
- Support Jumbo Frames.
- Support IEEE 1588.
- Support Linux bond.
- Support L2 Filter.

Supported Hardware:
-----------------------
- for internal phy only.
- compatible for PCIE gen2 x4.

Known Issues and Workarounds:
-----------------------------
functions below is still debugging:
- Wake-On-LAN
- SR-IOV
- Flow control
- PXE

Building and Installation:
--------------------------

to build ngbe, install kernel-header and kernel-devel packages corresponding to kernel version(command: uname -r).
then contact to us and get driver tgz file, uncompress tgz, go to src directory.
you can
in x86 platform:
compile the driver by executing "make"
install the driver by executing "make install"
in kylinft platform:
compile the driver by executing "make kylinft"
install the driver by executing "make kylinft_install"
load driver by executing "modprobe ngbe" or "modprobe ngbe [parameter=port1_value,port2_value]"
unload driver by executing "rmmod ngbe"

Command Line Parameters:
------------------------

Use ethtool, ifconfig, or ip link * to set or get the driver information, see man of these tools.


=================================================================================





